import { Component, OnInit, ViewChild } from '@angular/core';
import { STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
import { processSingleSort, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { RebateManagementService } from '../../services/rebate-management.service';
import { ParterRebateManageMenRecordDetailComponent } from '../../model/record-detail/record-detail.component';
import { ParterRebateManageMenAbnormalFeedbackComponent } from '../../model/abnormal-feedback/abnormal-feedback.component';

@Component({
  selector: 'app-parter-channel-rebate-management-record',
  templateUrl: './rebate-record.component.html'
})
export class ParterRebateManageMentRecordComponent implements OnInit {
  schema: SFSchema = {};
  columns!: STColumn[];
  ui!: SFUISchema;
  @ViewChild('st', { static: false })
  st!: STComponent;
  @ViewChild('sf', { static: false })
  sf!: SFComponent;
  spuStatus = '1';
  _$expand = false;
  data = [{ name1: 1111 }];
  constructor(
    public service: RebateManagementService,
    private modal: NzModalService,
    public shipperservice: ShipperBaseService,
  ) {}
  /**
 * 查询参数
 */
   get reqParams() {
    const params: any = Object.assign({}, this.sf?.value || {});
    return { 
      ...params,
     };
  }
  ngOnInit() {
    this.initSF();
    this.initST();
  }

  initSF() {
    this.schema = {
      properties: {
        month: {
          type: 'string',
          title: '时间月份',
          format: 'month',
        },
        phone: {
          type: 'string',
          title: '合伙人名称'
        },
      }
    };
    this.ui = {
      '*': {
        spanLabelFixed: 140,
        grid: { span: 8, gutter: 4 }
      }
    };
  }

  initST() {
    this.columns = [
      {
        title: '序号',
        className: 'text-center',
        width: '60px',
        format: (item: STData, col: STColumn, idx: number) => {
          return (this.st.pi * this.st.ps) - this.st.ps + idx + 1 + ''
        }
      },
      {
        title: '月份',
        index: 'month',
        format: (item: any) => {return ((item?.year ? item?.year + '-' : '') + (item?.month ? item.month  : ''))}
      },
      {
        title: '返佣金额（元）',
        render: 'profitAmountSum'
      },
      {
        title: '合伙人名称',
        index: 'partnerName'
      },
      {
        title: '实际等级',
        index: 'partnerGrade'
      },
      {
        title: '管理费比例',
        index: 'manageFeeRatio',
        format: (item) => {return item.manageFeeRatio + '%' }
      },
      {
        title: '返佣时间',
        index: 'returnCommissionTime'
      },
      {
        title: '异常反馈',
        render: 'abnormalFeedback'
      },
      {
        title: '操作',
        fixed: 'right',
        width: '90px',
        className: 'text-left',
        buttons: [
          {
            text: '明细',
            acl: { ability: ['REBATE-RECORD-detail'] },
            click: _record => this.viewEvaluate(_record),
          }
        ]
      }
    ];
  }
  /**
   *查看明细
   */
   viewEvaluate(item: any) {
    const modal = this.modal.create({
      nzTitle: '明细',
      nzWidth: 1200,
      nzContent: ParterRebateManageMenRecordDetailComponent,
      nzComponentParams: { record: item },
      nzFooter: null
    });
    modal.afterClose.subscribe((res: any) => {
      if (res) {
      }
    });
  }
  /**
   *异常反馈
   */
   feedback(item?: any) {
       const modal = this.modal.create({
          nzTitle: '异常反馈',
          nzWidth: 580,
          nzContent: ParterRebateManageMenAbnormalFeedbackComponent,
          nzComponentParams: { i: item },
          nzFooter: null
        });
        modal.afterClose.subscribe((res: any) => {
          if (res) {
          }
        });
  }
  /**
   * 重置表单
   */
  resetSF() {
    this.sf.reset();
    this.st.load(1);
  }
    // 导出
    exprot() {
      // this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_get_partnerIncomeHead_export);
      this.service.downloadFile(this.service.$api_get_partnerIncomeHead_export, { ...this.reqParams, pageSize: -1 });
    }
  
}
